/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package uk.ac.bath.environment;



/**
 *
 *  It supplies machines to be tested in the domain.
 *
 *  After each test the client should call endOfEvaluation with the fitness
 *
 *  A concrete scheme must manage with this !!!
 *
 *
 * @author pjl
 */
public interface Scheme {

    public String getStatus();

    /**
     *  Start of a single test.
     *  Scheme must return the machine to be tested
     *
     * @return
     */
    public MachineIF nextMachine();

    public String reportSetup();

    /**
     * Start of simulation
     */
    void init();

    /**
     * Called when a single test has finished.
     *
     * @param fitness
     */
    void endOfEvaluation(Fitness fitness);
}
